<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 第一种方法：利用父：display:table 子：display: table-cell + vertical-align: middle; */
        
        .box1 {
            width: 300px;
            height: 300px;
            background-color: blue;
            display: table;
        }
        
        span {
            display: table-cell;
            vertical-align: middle;
        }
        /* 。。
        。。。。
        。。。。
        。。。。 */
        /* 第二种方法 这里box1的ling-height要与盒子的高相同，
        是为了后面子元素而设置基线。而子元素设置display:inline-block;是为了自己设置合适的line-height。*/
        /* .box1 {
            width: 300px;
            height: 300px;
            background-color: blue;
            line-height: 300px;
        }
        
        .box1 span {
            display: inline-block;
            line-height: 18px;
            vertical-align: middle;
        } */
        /* 。。
        。。。。
        。。。。
        。。。。 */
        /* 第三种方法 flex布局*/
        /* .box1 {
            width: 300px;
            height: 300px;
            background-color: skyblue;
            display: flex;
            align-items: center;
        } */
        /* 。。
        。。。。
        。。。。
        。。。。 */
        /* 第四种用定位 */
        
        .box1 {
            position: relative;
            width: 300px;
            height: 300px;
            background-color: skyblue;
        }
        
        .box1 span {
            display: inline-block;
            /* 上面那句写不写都行，绝对定位默认转换成块级元素 */
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
        }
    </style>
</head>

<body>
    <div class="box1">
        <span>红酥手，黄縢酒，满城春色宫墙柳。
        	  东风恶，欢情薄。一怀愁绪，几年离索。错、错、错。</span>
    </div>

</body>

</html>